<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 日期对象  => 获取和设置一个日期(年月日 时分秒 毫秒)
    // 1. 倒计时   2. 时钟  3. 年月日 时分秒    4. 日历

    // UTC  GMT => 世界时(格林威治时间)   1970-1-1 00:00:00
    // BJ   GMT + 08:00

    // 获取日期  => 获取当前时间
    // var date = new Date();
    // console.log(date);


    // 设置日期  =>
    // a. 传入一个日期格式的字符串 'YYYY-MM-DD hh:mm:ss'  => 返回对应时间的日期对象
    // 优点: 设置的时间和用户期望的时间一一对应
    // 缺点: 查出临界值(小于最小值 大于最大值)会显示无效日期(Invalid Date)

    // var date = new Date("2022-10-1");
    // var date = new Date("2022-10-1 12:12:12");
    // var date = new Date("2022-10-32 12:12:12");  // Invalid Date
    // console.log(date);


    // b. 多参数传参 分别传入年月日时分秒    注意: 月份参数0-11
    // 优点: 超出临界值(小于最小值 大于最大值)之后会自动换算
    // 缺点: 月份参数0-11(一般)
    // var date = new Date(2022, 10, 1, 12, 12, 12); // 2022-11-1 12:12:12
    // console.log(date);

    // 超出最大值
    // var date = new Date(2022, 9, 32, 12, 12, 12); // 2022-10-32 12:12:12  =>  // 2022-11-1 12:12:12
    // console.log(date);

    // 小于最小值
    // 小技巧: 本月的第0天就是上个月的最后一天(是几号 就有多少天)
    //        下个月的第0天就是本月的最后一天(是几号 就有多少天)
    // var date = new Date(2022, 9, 0, 12, 12, 12); // 2022-10-0 12:12:12  =>  // 2022-9-30 12:12:12
    // console.log(date);

    // var date = new Date(2022, 10, 0, 12, 12, 12); // 2022-11-0 12:12:12  =>  // 2022-10-31 12:12:12
    // console.log(date);


    // c. 传入一个number类型(毫秒数)   => 根据传入的毫秒数设置时间

    // var date = new Date(0);
    // var date = new Date(365 * 24 * 60 * 60 * 1000);
    // var date = new Date(10000000000000);
    // console.log(date);

    // var date = new Date(-365 * 24 * 60 * 60 * 1000);
    // var date = new Date(-1000000000000000);
    // console.log(date);


    // d. new Date() 也可以传入一个日期对象  => 得到一个与原日期对象时间相同的新日期 (日期对象的方法可能会修改原日期,可以复制得到新日期)
    var d1 = new Date();
    var d2 = new Date(d1);

    console.log(d1);
    console.log(d2);
    console.log(d1 === d2);










</script>

</html>